package com.edu.chat.web.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 租户反馈表
 * @TableName sys_feedback
 */
@TableName(value ="sys_feedback")
@Data
public class SysFeedback {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 租户ID
     */
    @TableField(value = "tenant_id")
    private Long tenantId;

    /**
     * 提交用户ID（允许匿名反馈时可为空）
     */
    @TableField(value = "user_id")
    private Long userId;

    /**
     * 反馈类型:1-功能建议 2-错误报告 3-内容问题 4-其他
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 反馈标题
     */
    @TableField(value = "title")
    private String title;

    /**
     * 反馈详情
     */
    @TableField(value = "content")
    private String content;

    /**
     * 联系方式（邮箱/电话）
     */
    @TableField(value = "contact_info")
    private String contactInfo;

    /**
     * 处理状态:1-待处理 2-处理中 3-已解决 4-已关闭
     */
    @TableField(value = "status")
    private Integer status;

    /**
     * 优先级:1-紧急 2-高 3-中 4-低
     */
    @TableField(value = "priority")
    private Integer priority;

    /**
     * 反馈来源:1-WEB 2-APP 3-API
     */
    @TableField(value = "source_type")
    private Integer sourceType;

    /**
     * 附件信息（存储文件路径数组）
     */
    @TableField(value = "attachments")
    private Object attachments;

    /**
     * 处理人员ID
     */
    @TableField(value = "handler_id")
    private Long handlerId;

    /**
     * 处理时间
     */
    @TableField(value = "handled_at")
    private Date handledAt;

    /**
     * 是否删除
     */
    @TableField(value = "deleted")
    private Integer deleted;

    /**
     * 创建人
     */
    @TableField(value = "created_by")
    private String createdBy;

    /**
     * 创建时间
     */
    @TableField(value = "created_at")
    private Date createdAt;

    /**
     * 修改人
     */
    @TableField(value = "updated_by")
    private String updatedBy;

    /**
     * 修改时间
     */
    @TableField(value = "updated_at")
    private Date updatedAt;
}